﻿using System;
using System.ServiceModel;
using System.Security.Permissions;
using Sinacor.Infra.Service.Security.Services;
using Sinacor.Infra.Service.ExceptionHandling;

namespace Sinacor.Servico.Infra.KeepAlive.Service.ServiceContract
{
    /// <summary>
    /// Contrato de servico IKeepAlive
    /// </summary>
    [Sinacor.Infra.Service.ExceptionHandling.ExceptionShielding]
    [ServiceContract(Namespace = "http://www.bovespa.com.br/Sinacor.Servico.Infra.KeepAlive.Service.ServiceContract", Name = "IKeepAlive", SessionMode = SessionMode.Allowed)]

    public interface IKeepAlive
    {
        [OperationLog]
        [FaultContract(typeof(Sinacor.Infra.Common.Exceptions.FaultContracts.GeneralFault))]
        [FaultContract(typeof(Sinacor.Infra.Common.Exceptions.FaultContracts.BusinessFault))]
        [FaultContract(typeof(Sinacor.Infra.Common.Exceptions.FaultContracts.ValidationFault))]
        [FaultContract(typeof(Sinacor.Infra.Common.Exceptions.FaultContracts.InvalidSessionFault))]
        /*[NOVOSATRIBUTOS]*/

        [OperationContract(IsTerminating = false, IsInitiating = true, IsOneWay = false, Action = "KeepCommunicationAlive")]
        void KeepCommunicationAlive();
    }
}
